package com.itheima.d2_lambda;
/*
    1 Lambda表达式介绍
        Lambda表达式是JDK 8开始新增的一种语法形式； 作用：用于简化匿名内部类的代码写法。
    2 Lambda表达式格式
        (被重写方法的形参列表) -> {
              被重写方法的方法体代码。
        }
        注意 :  Lambda表达式只能简化函数式接口的匿名内部类!!!
    3 什么是函数式接口？
        有且仅有一个抽象方法的接口。
        注意：将来我们见到的大部分函数式接口，上面都可能会有一个@FunctionalInterface的注解，有该注解的接口就必定是函数式接口。

 */
public class LambdaTest1 {
    public static void main(String[] args) {
        useShowHandler(i-> System.out.println("swim"));
    }

    public static void useShowHandler(swim sw){
        int i = 2;
        sw.run(i);
    }
}


//函数式接口注解
@FunctionalInterface
interface swim{
    void run(int i);
    //@FunctionalInterface注解不报错，Object类中有的方法可以不重写，所以依旧是函数式接口
    String toString();
}